===========================================================================================
|
|   UNOFFICIAL SNES POWERPAK FIRMWARE V2.00 (CODENAME: "SIMBA")
|   (c) 2012/2013 by ManuLwe (http://www.manuloewe.de/)
|
|	*** USAGE & INSTALLATION ***
|
===========================================================================================



   A WORD OF WARNING !!!
______________________________________________________________________

Despite thorough testing, this software is NOT guaranteed to be bug-free. There are likely even critical issues in this software which might at worst corrupt data on your CF card and/or render your SNES PowerPak useless and/or damage your SNES control deck, as well as any accessory connected to it (like joypads, your TV set, etc.).

The developer, ManuLwe, will NOT be held responsible for any harm directly or indirectly caused by this software and/or the documents accompanying it, which you agree upon by downloading, installing and using this software. For more information, please read the disclaimer further below.

Most importantly, this being unofficial software, you will definitely void the five-year replacement warranty granted by the manufacturer of your SNES PowerPak!



   OVERVIEW
______________________________________________________________________

Thank you so much for downloading and installing my unofficial firmware v2.00 (codenamed "SIMBA") for the SNES PowerPak!

As a huge fan of this awesome flashcart myself ever since it was released in late 2009, I decided to give it a much-needed menu redesign earlier this year. Starting off as a simple font hack, this project quickly evolved into a full-blown, time-consuming GUI overhaul as I discovered how much more was possible, and necessary, in the process. Eventually, after obtaining The Sourcecode(tm) from the original developer, I was able to progress ever faster and smoother, the result of which is finally here for all SNES PowerPak users to enjoy. :-)

Major new features include an overall more flexible user interface with more intuitive joypad button mapping and an in-operation customization area, where you can switch DMA on/off, choose between three logo/cursor sprite sets, and select one of six HDMA background color gradient designs to adapt the PowerPak GUI to your individual liking. This, as well as the completely rewritten music player (now based on blargg's fantastic SPC uploading routines), aims to push the SNES PowerPak to a point where it shows its full potential, or at least something close to it.

The core change since v1.0X, however, is using the Super Nintendo's pseudo horizontal high resolution (BG mode 5), which now allows the filebrowser to display well over 50 characters per entry. Although this slows down file browsing to a certain extent due to the higher amount of LFN data being loaded, it helps to distinguish between ROM and save files with especially long yet similar names. For example, suppose you have these two ROM/savefile pairs on your CF card:

Final Fantasy IV (English) - Cosmetic Changes.sfc
Final Fantasy IV (English) - Cosmetic Changes.srm
Final Fantasy IV (English) - Cosmetic Changes 2.sfc
Final Fantasy IV (English) - Cosmetic Changes 2.srm

The two games will not only be visibly different now, but also auto-load their respective savegame files without mistake!

Additionally, I tried to optimize button mapping wherever necessary (see the section after next for details), spent time fixing bugs and quirks all over, and added some unobtrusive yet nice-to-notice graphical enhancements here and there.



   INSTALLATION
______________________________________________________________________

To install this unofficial SNES PowerPak firmware v2.00, you have two alternatives. Choose one, depending on your PowerPak's hardware revision and/or your technical knowledge and equipment. The first option is recommended because it is basically fail-safe -- but it only works with earlier carts. The second is fast, convenient, and should work with any cart revision -- but it involves a higher risk as well.

1) The Safe Way
------------------

Prerequisites:
   - A SNES PowerPak with a socketed flash boot ROM chip, e.g. PCB revD or revE. The hardware revision can be determined without opening up the cartridge by looking at the printing on the PCB in the CF card slot.
   - An external PLCC32 programmer, e.g. a parallel Willem device.

Steps necessary:
   - Reprogram your PowerPak's boot ROM chip with <this release's archive root>/src/out/loader.bin
   - Replace all (!) files in the "POWERPAK" directory on your CF card (yes, including the TXT files) with the contents of <this release's archive root>/POWERPAK (whilst keeping the contents of your "SAVES" directory, if applicable)

The first step is likely the more difficult one. First of all, you have to open up your SNES PowerPak and remove the sticker (if there is one) from the boot ROM chip. My own cart is a revD with an ATMEL AT29C010A type of chip. If you have a revE, you'll likely find an SST39SF010A chip in there. Next, remove the chip. Be very careful! It's likely not glued in, but I still had an incredibly hard time getting it out of the socket. This should be done with extreme care in order to avoid damage to you, the PowerPak, and/or any equipment you might be using. PLCC32 tweezers are recommended, though even these might cause damage to the socket if you aren't especially careful.

Programming the chip is a matter of its own and won't be covered here. Just note that an AT29C010A type of chip can be simply "overwritten" whereas the SST39SF010A has to be erased by software first (use the appropriate function of your programmer's software). The ROM file you need to write to the chip is snes_powerpak_loader_v2.00.bin from this release.

After reprogramming the chip, put it back into place - again, with care, despite the fact that some gentle force might be required to avoid connection problems. Finally, insert the PowerPak WITHOUT A CF CARD (!) into your SNES and fire it up. If it shows the logo and gives you a "CF card not found" error, then good, time to proceed. :-) If not, you've probably made a mistake at some point and have to start over.

Next is preparing the CF card. I recommend starting from scratch, i.e. with formatting the card using FAT32 (!). Then copy over the "POWERPAK" directory from this release, and you're basically done. You might want to add savegames to the /SAVES folder, or to any other directory on the card, as well as ROMs, of course.

If you don't want to reformat your CF card first, that's fine, but then please don't complain should problems arise. :p Anyway, load the card up on your computer, browse to the "POWERPAK" folder and copy all (!) the files from this release's subfolder of the same name into it, overwriting all (!) existing files in the process. Note that several new files will be put on your card. Also, CONFIG.TXT and LOG.TXT will be bigger in size than before, which is crucial for everything to work. Oh, and don't worry about an empty CONFIG.TXT - the PowerPak will start up with standard settings and save your custom choices whenever you leave the all-new customization feature. :-)

Okay, now re-load your ROMs (and savegames, possibly) onto the CF card. It is not recommended to put more than ~500 files into each directory. Technically, only the first 511 relevant files + subfolders of any directory are loaded at a time due to the rather limited WRAM buffer size. 508 entries are displayed in the filebrowser at most, so try and organize fewer files in more subdirectories to avoid "missing" files.

Lastly, install the CF card into your PowerPak ... and play! :D

2) The Easy Way
------------------

Prerequisites:
   - A SNES PowerPak of any hardware revision, as long as its flash boot ROM chip is either an AT29C010A or an SST39SF010A. I've got reports of successful upgrade procedures even on brand-new revH carts! :-)
   - A previous boot ROM version of either v1.02, v2.00-beta1, or v2.00-beta2.
   - Nerves of steel. If anything goes wrong during the upgrade process and your chip isn't socketed, you end up not with an updated PowerPak, but with a rather expensive paperweight! Remember: So much as a power failure is enough to permanently ruin your cart (unless your ROM chip is socketed, of course)!

Steps necessary:
   - Just replace all (!) files in the "POWERPAK" directory on your CF card (yes, including the TXT files) with the contents of <this release's archive root>/POWERPAK (whilst keeping the contents of your "SAVES" directory, if applicable)

Yes, that's it! Ignore all the other files from this release; the "POWERPAK" folder already contains everything that's needed. On powering up your SNES PowerPak, you'll be prompted to update by the all-new, intelligent in-system flasher. It will detect the installed chip type and previous boot ROM version, and spit out an error message in case the technical requirements aren't fulfilled. Otherwise, simply press A, and wait. If all goes well, the PowerPak will restart within seconds, presenting you with its new features and design.

Good luck ... and have fun! :-)



   BUTTON MAPPING
______________________________________________________________________

I'll limit this to anything that was changed since v1.0X (or undocumented therein) or isn't listed in the "online" help.

Titlescreen:
- B, Y, and the directional pad are ignored.

Filebrowser:
- Up/down moves the cursor "digitally" from entry to entry. Hold for fast and convenient short-distance navigation.
- Left/right (directional pad) scrolls the cursor just as fast as the L/R shoulder buttons used to in v1.0X (left = up, right = down).
- L/R (shoulder buttons) skip entire "pages" (L = previous page, R = next page). To avoid confusion, there is a built-in "stop" both at the beginning and end of a directory.
- A selects a file or directory.
- B allows you to go up one directory at any time. If you are in the root directory, B will take you back to the previous screen instead (except when in the SRAM browser).
- X, Y are ignored.
- Start (in the ROM browser) takes you to the options screen with the game pre-selected that was played last.
- Start (in the GameGenie code TXT browser) takes you back to the options screen (just like B in this case).
- Start (in the SRAM browser) is ignored.

Options screen (this is where you add SRAM and/or GameGenie codes):
- Press Start to launch the game (even when the cursor isn't on the "Play!" line).
- Make a main selection (like starting the game) with A, other buttons are ignored.
- When entering GameGenie codes, A/X/R make a digit increment its value while B/Y/L decrement it.
- Press L+R+X together (with the cursor on any GG code line) to clear out all previously entered and/or loaded GG codes. This is especially useful if you want to get rid of codes loaded together with the game you played last.

Game loading:
- Hold Select while a ROM is being loaded to have its mapping logged to LOG.TXT, and pause on the mapping screen. Press Start to actually launch the game. (Otherwise, only failed ROM loading attempts will be logged.)



   COMPILING THE SOURCE
______________________________________________________________________

The sourcecode is best viewed with the programming editor of your choice (I use Notepad++) with a tabulator size of 8 (comments generally start on column 49). If you want to recompile it using the included make script, you first have to obtain the following tools, which are called in the process:

- WLA DX v9.5a Windows binaries
- head.exe from the GNU utilities' Win32 port
- zerofill.exe from Neill Corlett's command line pack v1.03

All the graphics are best converted with Alekmaul's gfx2snes v0.3.0 from the DevkitSnes v1.0.0 release; for the correct parameters, see my included gfx conversion script. The background gradient PNGs (bg0...bg6) are for use with Ersanio's HDMA Gradient Ripper v1.2.2, output tables are for register $2121/$2122 with a palette color destination of $00.

The music, generally, is a complete pain in the neck to get right. Remember that you only have 8 channels, and sample quality needs to be heavily reduced to make it all fit into the SPC700's sound RAM (64 KB). Once you've created a decent sounding downsampled IT version of your song (I recommend Open ModPlug Tracker / OpenMPT), it is best compiled into a ROM using Alekmaul's PVSnesLib music example. The SPC data can then be captured with the emulator of your choice. Good luck!



   CREDITS & THANKS
______________________________________________________________________

Thanks go out to the following people (in no particular order):

- mi213, Marvin, effowe, snstay for testing, helpful information, and much appreciated positive feedback in general :-)
- thefox for a clever bitwise operation code snippet :3
- ikari_01 (the Great) for tips and hints concerning HDMA and pseudo hi-res mode
- blargg for his amazing SPC uploading routines
- bunnyboy for creating the SNES PowerPak, and for silently releasing the loader sourcecode upon my persistent request! :D



   DISCLAIMER
______________________________________________________________________

All trademarks mentioned in this readme file are the property of their respective owners.

This software is freeware. It is provided "as is" and without express or implied warranty of any kind. ManuLwe will not be held liable or responsible for any losses, damages, injuries, and/or legal consequences due to the misuse and/or illegal use of any of the files contained within this archive. 

The archive may be redistributed freely under the circumstance that no file(s) is/are added, changed, and/or removed.

ManuLwe is not affiliated in any way with The Retrozone / RetroUSB or Nintendo.
